package pe.com.certicom.scv.service;


import java.util.ArrayList;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import pe.com.certicom.scv.persistence.*;
import pe.com.certicom.scv.domain.*;

@Service("PanderoService")
@Transactional(readOnly=true,rollbackFor=Exception.class)
public class PanderoService {

	@Autowired
	private TvpersonMapper tvpersonMapper;
	
	@Autowired
	private PanderoMapper panderoMapper;
	
	@Autowired
	private UbigeoMapper ubigeoMapper;
	
	public Tvperson existeTvperson(int co_persona) {
		return panderoMapper.existeTvperson(co_persona);
	}
	
	public Tvpanesp existeTvpanesp(int co_persona) {
		return panderoMapper.existeTvpanesp(co_persona);
	}
	
	public Panesp2 existePanesp2(int co_persona) {
		return panderoMapper.existePanesp2(co_persona);
	}
	
	public Panespedv existePanespedv(int co_persona) {
		return panderoMapper.existePanespedv(co_persona);
	}
	
	public Panespveh existePanespveh(int co_persona) {
		return panderoMapper.existePanespveh(co_persona);
	}
	@Transactional
	public void insertTvpanesp(int co_persona) {
		panderoMapper.insertTvpanesp(co_persona);
	}
	
	@Transactional
	public void insertPanesp2(int co_persona) {
		panderoMapper.insertPanesp2(co_persona);
	}
	
	@Transactional
	public void insertPanespedv(int co_persona) {
		panderoMapper.insertPanespedv(co_persona);
	}
	
	@Transactional
	public void insertPanespveh(int co_persona) {
		panderoMapper.insertPanespveh(co_persona);
	}
	
	public Pandero getPandero(int co_persona) {
		Pandero pandero = new Pandero();
		pandero.setCO_PERSONA(co_persona);
		return panderoMapper.getPanderoPorCodigo(pandero);
	}
	
	@Transactional
	//(readOnly=false,propagation=Propagation.REQUIRED,rollbackFor=Exception.class)
	public void modificarPandero(Pandero pandero) {
		panderoMapper.updateTvperson(pandero);
		panderoMapper.updateTvpanesp(pandero);
		panderoMapper.updateFecha(pandero);
		panderoMapper.updatePanesp2(pandero);
		panderoMapper.updatePanespedv(pandero);
		panderoMapper.updatePanespveh(pandero);
	
	}
	
	public List<Tvperson> obtenerTvperson() {
		List<Tvperson> list = new ArrayList<Tvperson>();
		try {
			list = tvpersonMapper.getTvpersons();
			return list;
		} catch (Exception e) {
			e.printStackTrace();
			return list;
		}
		
	}
	
	public List<Tvperson> obtenerTvpersonTerm() {
		List<Tvperson> list = new ArrayList<Tvperson>();
		try {
			list = tvpersonMapper.getTvpersonsTerm();
			return list;
		} catch (Exception e) {
			e.printStackTrace();
			return list;
		}
		
	}

	@Transactional
	public List<Ubigeo> obtenerUbigeo() {
		List<Ubigeo> list = new ArrayList<Ubigeo>();
		try {
			list = ubigeoMapper.getUbigeo();
			return list;
		} catch (Exception e) {
			e.printStackTrace();
			return list;
		}
		
	}
 
}
